<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Kinetis Bootloader: LPI2C Slave Driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo_small.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Kinetis Bootloader
   &#160;<span id="projectnumber">2.0.0</span>
   </div>
   <div id="projectbrief">Common bootloader for Kinetis devices</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Introduction</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="modules.html"><span>Modules</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__lpi2c__slave__driver.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">LPI2C Slave Driver<div class="ingroups"><a class="el" href="group__lpi2c__driver.html">LPI2C Driver</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Collaboration diagram for LPI2C Slave Driver:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<center><table><tr><td><div class="center"><iframe scrolling="no" frameborder="0" src="group__lpi2c__slave__driver.svg" width="280" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structlpi2c__slave__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t">lpi2c_slave_config_t</a></td></tr>
<tr class="memdesc:structlpi2c__slave__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Structure with settings to initialize the LPI2C slave module.  <a href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t">More...</a><br /></td></tr>
<tr class="separator:structlpi2c__slave__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structlpi2c__slave__config__t_8scl_stall"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t_8scl_stall">lpi2c_slave_config_t.sclStall</a></td></tr>
<tr class="separator:structlpi2c__slave__config__t_8scl_stall"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structlpi2c__slave__transfer__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__transfer__t">lpi2c_slave_transfer_t</a></td></tr>
<tr class="memdesc:structlpi2c__slave__transfer__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPI2C slave transfer structure.  <a href="group__lpi2c__slave__driver.html#structlpi2c__slave__transfer__t">More...</a><br /></td></tr>
<tr class="separator:structlpi2c__slave__transfer__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:struct__lpi2c__slave__handle"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#struct__lpi2c__slave__handle">lpi2c_slave_handle_t</a></td></tr>
<tr class="memdesc:struct__lpi2c__slave__handle"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPI2C slave handle structure.  <a href="group__lpi2c__slave__driver.html#struct__lpi2c__slave__handle">More...</a><br /></td></tr>
<tr class="separator:struct__lpi2c__slave__handle"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaddf93dfdcc63952d562a61e5631f31ad"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gaddf93dfdcc63952d562a61e5631f31ad">lpi2c_slave_transfer_callback_t</a>) (LPI2C_Type *base, <a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__transfer__t">lpi2c_slave_transfer_t</a> *transfer, void *userData)</td></tr>
<tr class="memdesc:gaddf93dfdcc63952d562a61e5631f31ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slave event callback function pointer type.  <a href="#gaddf93dfdcc63952d562a61e5631f31ad">More...</a><br /></td></tr>
<tr class="separator:gaddf93dfdcc63952d562a61e5631f31ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gabd50effc706692c03b42faa72c34269b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gabd50effc706692c03b42faa72c34269b">_lpi2c_slave_flags</a> { <br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba80486f66e12276c945b8813269b90c0e">kLPI2C_SlaveTxReadyFlag</a> = LPI2C_SSR_TDF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba01265ce6645e4a978b823b1f130a419f">kLPI2C_SlaveRxReadyFlag</a> = LPI2C_SSR_RDF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269baf34a60fee419e0b3d387b353a38b4772">kLPI2C_SlaveAddressValidFlag</a> = LPI2C_SSR_AVF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba37386d33a28e37352a8e3151f027fdff">kLPI2C_SlaveTransmitAckFlag</a> = LPI2C_SSR_TAF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba5c5dcad526309c44aa390c13ae53ca3e">kLPI2C_SlaveRepeatedStartDetectFlag</a> = LPI2C_SSR_RSF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269baaaa1d719607915d0b1251727900018a7">kLPI2C_SlaveStopDetectFlag</a> = LPI2C_SSR_SDF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba41375eeb82c399aff15daba1e8bbff03">kLPI2C_SlaveBitErrFlag</a> = LPI2C_SSR_BEF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba6eb9dd96bad287dcb7e2f23f73d961a8">kLPI2C_SlaveFifoErrFlag</a> = LPI2C_SSR_FEF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba9fb3f57d810e280effee1dae37d062bb">kLPI2C_SlaveAddressMatch0Flag</a> = LPI2C_SSR_AM0F_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba62cc9694d6891b21af074122eeedca85">kLPI2C_SlaveAddressMatch1Flag</a> = LPI2C_SSR_AM1F_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba6a0fa821b530336ea8d1f19aadcbe1dc">kLPI2C_SlaveGeneralCallFlag</a> = LPI2C_SSR_GCF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269baffa3195deae58fc6ea15d062b465ac5d">kLPI2C_SlaveBusyFlag</a> = LPI2C_SSR_SBF_MASK, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba2531ffa96faa3086714e8a069508867b">kLPI2C_SlaveBusBusyFlag</a> = LPI2C_SSR_BBF_MASK
<br />
 }<tr class="memdesc:gabd50effc706692c03b42faa72c34269b"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPI2C slave peripheral flags.  <a href="group__lpi2c__slave__driver.html#gabd50effc706692c03b42faa72c34269b">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gabd50effc706692c03b42faa72c34269b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac3564395ccab19eb1ce6ab46b36bb5bb"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gac3564395ccab19eb1ce6ab46b36bb5bb">lpi2c_slave_address_match_t</a> { <br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggac3564395ccab19eb1ce6ab46b36bb5bbaaa16a731881882d10f48ebde416f54c5">kLPI2C_MatchAddress0</a> = 0U, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggac3564395ccab19eb1ce6ab46b36bb5bba2941f8a06a17205294e7d0fa5f305675">kLPI2C_MatchAddress0OrAddress1</a> = 2U, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#ggac3564395ccab19eb1ce6ab46b36bb5bba59e460fdd7075191f69e047ef35557eb">kLPI2C_MatchAddress0ThroughAddress1</a> = 6U
<br />
 }<tr class="memdesc:gac3564395ccab19eb1ce6ab46b36bb5bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">LPI2C slave address match options.  <a href="group__lpi2c__slave__driver.html#gac3564395ccab19eb1ce6ab46b36bb5bb">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:gac3564395ccab19eb1ce6ab46b36bb5bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d99b4dba3841a4e02f7c431a59006c8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga0d99b4dba3841a4e02f7c431a59006c8">lpi2c_slave_transfer_event_t</a> { <br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8a10fb8d9bb6ba9cd44fde85466e6eabef">kLPI2C_SlaveAddressMatchEvent</a> = 0x01U, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8a976c8c9aa85026224a46cf5ec742eb49">kLPI2C_SlaveTransmitEvent</a> = 0x02U, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8ac737ba9e4e62880a6e2d8aac98ae8f18">kLPI2C_SlaveReceiveEvent</a> = 0x04U, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8a112af4cf8f8a374407d7c784f024b8e0">kLPI2C_SlaveTransmitAckEvent</a> = 0x08U, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8ae0995aac6808b3726b7577c2d283e4c4">kLPI2C_SlaveRepeatedStartEvent</a> = 0x10U, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8a06ef7422d9edf9b914864a2d689f042c">kLPI2C_SlaveCompletionEvent</a> = 0x20U, 
<br />
&#160;&#160;<a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8aeed0927f4e909cb161b44434b6f01aec">kLPI2C_SlaveAllEvents</a>
<br />
 }<tr class="memdesc:ga0d99b4dba3841a4e02f7c431a59006c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of events sent to the callback for nonblocking slave transfers.  <a href="group__lpi2c__slave__driver.html#ga0d99b4dba3841a4e02f7c431a59006c8">More...</a><br /></td></tr>
</td></tr>
<tr class="separator:ga0d99b4dba3841a4e02f7c431a59006c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Slave initialization and deinitialization</h2></td></tr>
<tr class="memitem:gadf34085d4557ceb3081fff9fe0e3189a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gadf34085d4557ceb3081fff9fe0e3189a">LPI2C_SlaveGetDefaultConfig</a> (<a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t">lpi2c_slave_config_t</a> *slaveConfig)</td></tr>
<tr class="memdesc:gadf34085d4557ceb3081fff9fe0e3189a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides a default configuration for the LPI2C slave peripheral.  <a href="#gadf34085d4557ceb3081fff9fe0e3189a">More...</a><br /></td></tr>
<tr class="separator:gadf34085d4557ceb3081fff9fe0e3189a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae5cc8a03c784a99bb58b69852dfda5a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gae5cc8a03c784a99bb58b69852dfda5a5">LPI2C_SlaveInit</a> (LPI2C_Type *base, const <a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t">lpi2c_slave_config_t</a> *slaveConfig, uint32_t sourceClock_Hz)</td></tr>
<tr class="memdesc:gae5cc8a03c784a99bb58b69852dfda5a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the LPI2C slave peripheral.  <a href="#gae5cc8a03c784a99bb58b69852dfda5a5">More...</a><br /></td></tr>
<tr class="separator:gae5cc8a03c784a99bb58b69852dfda5a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa1a5cfe78acec0e1f8dd4af63a0f87f8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gaa1a5cfe78acec0e1f8dd4af63a0f87f8">LPI2C_SlaveDeinit</a> (LPI2C_Type *base)</td></tr>
<tr class="memdesc:gaa1a5cfe78acec0e1f8dd4af63a0f87f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes the LPI2C slave peripheral.  <a href="#gaa1a5cfe78acec0e1f8dd4af63a0f87f8">More...</a><br /></td></tr>
<tr class="separator:gaa1a5cfe78acec0e1f8dd4af63a0f87f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf58f9ebf437d62936c45c201a68fb5d7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gaf58f9ebf437d62936c45c201a68fb5d7">LPI2C_SlaveReset</a> (LPI2C_Type *base)</td></tr>
<tr class="memdesc:gaf58f9ebf437d62936c45c201a68fb5d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Perform software reset of the LPI2C slave peripheral.  <a href="#gaf58f9ebf437d62936c45c201a68fb5d7">More...</a><br /></td></tr>
<tr class="separator:gaf58f9ebf437d62936c45c201a68fb5d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae83a936eb8303218278cd704d8238a08"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gae83a936eb8303218278cd704d8238a08">LPI2C_SlaveEnable</a> (LPI2C_Type *base, bool enable)</td></tr>
<tr class="memdesc:gae83a936eb8303218278cd704d8238a08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables or disables the LPI2C module as slave.  <a href="#gae83a936eb8303218278cd704d8238a08">More...</a><br /></td></tr>
<tr class="separator:gae83a936eb8303218278cd704d8238a08"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Slave status</h2></td></tr>
<tr class="memitem:ga18055724e510f601f35cc00940e9155c"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga18055724e510f601f35cc00940e9155c">LPI2C_SlaveGetStatusFlags</a> (LPI2C_Type *base)</td></tr>
<tr class="memdesc:ga18055724e510f601f35cc00940e9155c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the LPI2C slave status flags.  <a href="#ga18055724e510f601f35cc00940e9155c">More...</a><br /></td></tr>
<tr class="separator:ga18055724e510f601f35cc00940e9155c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3b5306231d96d7fa38ef26d9ca6526b1"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga3b5306231d96d7fa38ef26d9ca6526b1">LPI2C_SlaveClearStatusFlags</a> (LPI2C_Type *base, uint32_t statusMask)</td></tr>
<tr class="memdesc:ga3b5306231d96d7fa38ef26d9ca6526b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears the LPI2C status flag state.  <a href="#ga3b5306231d96d7fa38ef26d9ca6526b1">More...</a><br /></td></tr>
<tr class="separator:ga3b5306231d96d7fa38ef26d9ca6526b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Slave interrupts</h2></td></tr>
<tr class="memitem:gaf5b7a33a341fd95ca77dcb6fe7f1bf3c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gaf5b7a33a341fd95ca77dcb6fe7f1bf3c">LPI2C_SlaveEnableInterrupts</a> (LPI2C_Type *base, uint32_t interruptMask)</td></tr>
<tr class="memdesc:gaf5b7a33a341fd95ca77dcb6fe7f1bf3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable LPI2C slave interrupt requests.  <a href="#gaf5b7a33a341fd95ca77dcb6fe7f1bf3c">More...</a><br /></td></tr>
<tr class="separator:gaf5b7a33a341fd95ca77dcb6fe7f1bf3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9422103623a9866f350dd03aea984741"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga9422103623a9866f350dd03aea984741">LPI2C_SlaveDisableInterrupts</a> (LPI2C_Type *base, uint32_t interruptMask)</td></tr>
<tr class="memdesc:ga9422103623a9866f350dd03aea984741"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disable LPI2C slave interrupt requests.  <a href="#ga9422103623a9866f350dd03aea984741">More...</a><br /></td></tr>
<tr class="separator:ga9422103623a9866f350dd03aea984741"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3d1fb84d337b8eb5cc19cbeced06c2a1"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga3d1fb84d337b8eb5cc19cbeced06c2a1">LPI2C_SlaveGetEnabledInterrupts</a> (LPI2C_Type *base)</td></tr>
<tr class="memdesc:ga3d1fb84d337b8eb5cc19cbeced06c2a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the set of currently enabled LPI2C slave interrupt requests.  <a href="#ga3d1fb84d337b8eb5cc19cbeced06c2a1">More...</a><br /></td></tr>
<tr class="separator:ga3d1fb84d337b8eb5cc19cbeced06c2a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Slave DMA control</h2></td></tr>
<tr class="memitem:gaa13d0c04083818cf91af19a6add0e08f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#gaa13d0c04083818cf91af19a6add0e08f">LPI2C_SlaveEnableDMA</a> (LPI2C_Type *base, bool enableAddressValid, bool enableRx, bool enableTx)</td></tr>
<tr class="memdesc:gaa13d0c04083818cf91af19a6add0e08f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable LPI2C slave peripheral DMA requests.  <a href="#gaa13d0c04083818cf91af19a6add0e08f">More...</a><br /></td></tr>
<tr class="separator:gaa13d0c04083818cf91af19a6add0e08f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Slave bus operations</h2></td></tr>
<tr class="memitem:ga155ee1b5bc8c621b60b349b191c078fc"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga155ee1b5bc8c621b60b349b191c078fc">LPI2C_SlaveGetBusIdleState</a> (LPI2C_Type *base)</td></tr>
<tr class="memdesc:ga155ee1b5bc8c621b60b349b191c078fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return whether the bus is idle.  <a href="#ga155ee1b5bc8c621b60b349b191c078fc">More...</a><br /></td></tr>
<tr class="separator:ga155ee1b5bc8c621b60b349b191c078fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga417e07e45369a955f7fecaa26e13b335"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga417e07e45369a955f7fecaa26e13b335">LPI2C_SlaveTransmitAck</a> (LPI2C_Type *base, bool ackOrNack)</td></tr>
<tr class="memdesc:ga417e07e45369a955f7fecaa26e13b335"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transmit either an Ack or Nak on the I2C bus in response to a byte from the master.  <a href="#ga417e07e45369a955f7fecaa26e13b335">More...</a><br /></td></tr>
<tr class="separator:ga417e07e45369a955f7fecaa26e13b335"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8219a79b748dc59c982c7c3a8470c3a6"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga8219a79b748dc59c982c7c3a8470c3a6">LPI2C_SlaveGetReceivedAddress</a> (LPI2C_Type *base)</td></tr>
<tr class="memdesc:ga8219a79b748dc59c982c7c3a8470c3a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the slave address sent by the I2C master.  <a href="#ga8219a79b748dc59c982c7c3a8470c3a6">More...</a><br /></td></tr>
<tr class="separator:ga8219a79b748dc59c982c7c3a8470c3a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6762c41a46ca9cdc9c749e83f1a9f17d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga6762c41a46ca9cdc9c749e83f1a9f17d">LPI2C_SlaveSend</a> (LPI2C_Type *base, const void *txBuff, size_t txSize, size_t *actualTxSize)</td></tr>
<tr class="memdesc:ga6762c41a46ca9cdc9c749e83f1a9f17d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a polling send transfer on the I2C bus.  <a href="#ga6762c41a46ca9cdc9c749e83f1a9f17d">More...</a><br /></td></tr>
<tr class="separator:ga6762c41a46ca9cdc9c749e83f1a9f17d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga36dd1b211a7fe488bfc062a1d8e74fc8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga36dd1b211a7fe488bfc062a1d8e74fc8">LPI2C_SlaveReceive</a> (LPI2C_Type *base, void *rxBuff, size_t rxSize, size_t *actualRxSize)</td></tr>
<tr class="memdesc:ga36dd1b211a7fe488bfc062a1d8e74fc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Performs a polling receive transfer on the I2C bus.  <a href="#ga36dd1b211a7fe488bfc062a1d8e74fc8">More...</a><br /></td></tr>
<tr class="separator:ga36dd1b211a7fe488bfc062a1d8e74fc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Slave non-blocking</h2></td></tr>
<tr class="memitem:ga443cf70e4ba4011e333c0d187230f2fa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga443cf70e4ba4011e333c0d187230f2fa">LPI2C_SlaveCreateHandle</a> (LPI2C_Type *base, lpi2c_slave_handle_t *handle, <a class="el" href="group__lpi2c__slave__driver.html#gaddf93dfdcc63952d562a61e5631f31ad">lpi2c_slave_transfer_callback_t</a> callback, void *userData)</td></tr>
<tr class="memdesc:ga443cf70e4ba4011e333c0d187230f2fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new handle for the LPI2C slave non-blocking APIs.  <a href="#ga443cf70e4ba4011e333c0d187230f2fa">More...</a><br /></td></tr>
<tr class="separator:ga443cf70e4ba4011e333c0d187230f2fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1ba7c9d0c254de8fe8c04091c007edff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga1ba7c9d0c254de8fe8c04091c007edff">LPI2C_SlaveTransferNonBlocking</a> (LPI2C_Type *base, lpi2c_slave_handle_t *handle, uint32_t eventMask)</td></tr>
<tr class="memdesc:ga1ba7c9d0c254de8fe8c04091c007edff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start accepting slave transfers.  <a href="#ga1ba7c9d0c254de8fe8c04091c007edff">More...</a><br /></td></tr>
<tr class="separator:ga1ba7c9d0c254de8fe8c04091c007edff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6d19b28a83f2997caf3fcd6927487e98"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga6d19b28a83f2997caf3fcd6927487e98">LPI2C_SlaveGetTransferCount</a> (LPI2C_Type *base, lpi2c_slave_handle_t *handle, size_t *count)</td></tr>
<tr class="memdesc:ga6d19b28a83f2997caf3fcd6927487e98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get slave transfer status during a non-blocking transfer.  <a href="#ga6d19b28a83f2997caf3fcd6927487e98">More...</a><br /></td></tr>
<tr class="separator:ga6d19b28a83f2997caf3fcd6927487e98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga515cda32a1d703a2c0ed7552ab7dfc4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga515cda32a1d703a2c0ed7552ab7dfc4d">LPI2C_SlaveAbortTransfer</a> (LPI2C_Type *base, lpi2c_slave_handle_t *handle)</td></tr>
<tr class="memdesc:ga515cda32a1d703a2c0ed7552ab7dfc4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abort slave non-blocking transfers.  <a href="#ga515cda32a1d703a2c0ed7552ab7dfc4d">More...</a><br /></td></tr>
<tr class="separator:ga515cda32a1d703a2c0ed7552ab7dfc4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Slave IRQ handler</h2></td></tr>
<tr class="memitem:ga2f7c089dea70918c0a08b2caaddd2fe7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__lpi2c__slave__driver.html#ga2f7c089dea70918c0a08b2caaddd2fe7">LPI2C_SlaveHandleInterrupt</a> (LPI2C_Type *base, lpi2c_slave_handle_t *handle)</td></tr>
<tr class="memdesc:ga2f7c089dea70918c0a08b2caaddd2fe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reusable routine to handle slave interrupts.  <a href="#ga2f7c089dea70918c0a08b2caaddd2fe7">More...</a><br /></td></tr>
<tr class="separator:ga2f7c089dea70918c0a08b2caaddd2fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Usage Information</h2>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structlpi2c__slave__config__t" id="structlpi2c__slave__config__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct lpi2c_slave_config_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>Structure with settings to initialize the LPI2C slave module. </p>
<p>This structure holds configuration settings for the LPI2C slave peripheral. To initialize this structure to reasonable defaults, call the <a class="el" href="group__lpi2c__slave__driver.html#gadf34085d4557ceb3081fff9fe0e3189a" title="Provides a default configuration for the LPI2C slave peripheral. ">LPI2C_SlaveGetDefaultConfig()</a> function and pass a pointer to your config struct instance.</p>
<p>The config struct can be made const so it resides in flash. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aff9b3a49968d57ad40dd16396771a9fc"></a>uint8_t</td>
<td class="fieldname">
address0</td>
<td class="fielddoc">
<p>Slave's 7-bit address. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a543aac749a1a6c5979078c37746dc889"></a>uint8_t</td>
<td class="fieldname">
address1</td>
<td class="fielddoc">
<p>Alternate slave 7-bit address. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a3af8f35baf0b56703fd4f5faade04fca"></a><a class="el" href="group__lpi2c__slave__driver.html#gac3564395ccab19eb1ce6ab46b36bb5bb">lpi2c_slave_address_match_t</a></td>
<td class="fieldname">
addressMatchMode</td>
<td class="fielddoc">
<p>Address matching options. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="abf8acbf844a6a2bee1eb187b90fc65c3"></a>uint32_t</td>
<td class="fieldname">
clockHoldTime_ns</td>
<td class="fielddoc">
<p>Width in nanoseconds of the clock hold time. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0c0a9a010bd402a3d8a2e4028c513737"></a>uint32_t</td>
<td class="fieldname">
dataValidDelay_ns</td>
<td class="fielddoc">
<p>Width in nanoseconds of the data valid delay. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aedb9cfa838d8a677d9193d5c92298ea4"></a>bool</td>
<td class="fieldname">
enableGeneralCall</td>
<td class="fielddoc">
<p>Enable general call address matching. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a72320d119698767e7b2a424f41a39fbc"></a>bool</td>
<td class="fieldname">
enableReceivedAddressRead</td>
<td class="fielddoc">
<p>Enable reading the address received address as the first byte of data. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a9189d8f6438ba99548837da162213c46"></a>bool</td>
<td class="fieldname">
enableSlave</td>
<td class="fielddoc">
<p>Enable slave mode. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a936b2fb7962b6f10143cac2cf270745a"></a>bool</td>
<td class="fieldname">
filterDozeEnable</td>
<td class="fielddoc">
<p>Enable digital glitch filter in doze mode. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a4d535e193da676b2da47c3e956a8bd56"></a>bool</td>
<td class="fieldname">
filterEnable</td>
<td class="fielddoc">
<p>Enable digital glitch filter. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0c9caf9d8740154459a3cdff687e8d3c"></a>bool</td>
<td class="fieldname">
ignoreAck</td>
<td class="fielddoc">
<p>Continue transafers after a Nack is detected. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a712c8bd76a60c235b6b3d8de0bde4731"></a>uint32_t</td>
<td class="fieldname">
sclGlitchFilterWidth_ns</td>
<td class="fielddoc">
<p>Width in nanoseconds of the digital filter on the SCL signal. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a4cd890a471a4317e11d6052d6073cc43"></a>struct <a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t_8scl_stall">lpi2c_slave_config_t</a></td>
<td class="fieldname">
sclStall</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="af927e91c011fa7491aef7ada886518f8"></a>uint32_t</td>
<td class="fieldname">
sdaGlitchFilterWidth_ns</td>
<td class="fielddoc">
<p>Width in nanoseconds of the digital filter on the SDA signal. </p>
</td></tr>
</table>

</div>
</div>
<a name="structlpi2c__slave__config__t_8scl_stall" id="structlpi2c__slave__config__t_8scl_stall"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct lpi2c_slave_config_t.sclStall</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"></div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a409481c59d122c0997eef20ef1f47a52"></a>bool</td>
<td class="fieldname">
enableAck</td>
<td class="fielddoc">
<p>Enables SCL clock stretching during slave-transmit address byte(s) and slave-receiver address and data byte(s) to allow software to write the Transmit ACK Register before the ACK or NACK is transmitted. Clock stretching occurs when transmitting the 9th bit. When enableAckSCLStall is enabled, there is no need to set either enableRxDataSCLStall or enableAddressSCLStall. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="abdc94b49613b81994ae0fa4803e36bc1"></a>bool</td>
<td class="fieldname">
enableAddress</td>
<td class="fielddoc">
<p>Enables SCL clock stretching when the address valid flag is asserted. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a9ef10d943a85eb899cdf2826c7c3a2bc"></a>bool</td>
<td class="fieldname">
enableRx</td>
<td class="fielddoc">
<p>Enables SCL clock stretching when receive data flag is set during a slave-receive transfer. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a395a5d14341597d7b707514605b15c9d"></a>bool</td>
<td class="fieldname">
enableTx</td>
<td class="fielddoc">
<p>Enables SCL clock stretching when the transmit data flag is set during a slave-transmit transfer. </p>
</td></tr>
</table>

</div>
</div>
<a name="structlpi2c__slave__transfer__t" id="structlpi2c__slave__transfer__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct lpi2c_slave_transfer_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>LPI2C slave transfer structure. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="aac6aa92f2aef99293ab2f5ad6f734fad"></a><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a></td>
<td class="fieldname">
completionStatus</td>
<td class="fielddoc">
<p>Success or error code describing how the transfer completed. Only applies for <a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8a06ef7422d9edf9b914864a2d689f042c">kLPI2C_SlaveCompletionEvent</a>. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="abe222f6d3581e7920dcad5306cc906a8"></a>uint8_t *</td>
<td class="fieldname">
data</td>
<td class="fielddoc">
<p>Transfer buffer </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a78f9703861dd365a513c2c5aab9f9239"></a>size_t</td>
<td class="fieldname">
dataSize</td>
<td class="fielddoc">
<p>Transfer size </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a316e6109eb033d9398c142e2c071383f"></a><a class="el" href="group__lpi2c__slave__driver.html#ga0d99b4dba3841a4e02f7c431a59006c8">lpi2c_slave_transfer_event_t</a></td>
<td class="fieldname">
event</td>
<td class="fielddoc">
<p>Reason the callback is being invoked. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="ae32359c3b68622d1de64c0c3e5cd2542"></a>uint8_t</td>
<td class="fieldname">
receivedAddress</td>
<td class="fielddoc">
<p>Matching address send by master. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a97856cb5d71b7981d4ce9813124a5433"></a>size_t</td>
<td class="fieldname">
transferredCount</td>
<td class="fielddoc">
<p>Number of bytes actually transferred since start or last repeated start. </p>
</td></tr>
</table>

</div>
</div>
<a name="struct__lpi2c__slave__handle" id="struct__lpi2c__slave__handle"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct _lpi2c_slave_handle</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>LPI2C slave handle structure. </p>
<dl class="section note"><dt>Note</dt><dd>The contents of this structure are private and subject to change. </dd></dl>
</div><div id="dynsection-1" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-1-trigger" src="closed.png" alt="+"/> Collaboration diagram for lpi2c_slave_handle_t:</div>
<div id="dynsection-1-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-1-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="struct__lpi2c__slave__handle__coll__graph.svg" width="158" height="142"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.html">legend</a>]</span></center></div>
<table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0bc069bcca574b2ce717aa640cb47439"></a><a class="el" href="group__lpi2c__slave__driver.html#gaddf93dfdcc63952d562a61e5631f31ad">lpi2c_slave_transfer_callback_t</a></td>
<td class="fieldname">
callback</td>
<td class="fielddoc">
<p>Callback function called at transfer event. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="acf2922a79dce3fb9f7c7fe948de1f5a8"></a>uint32_t</td>
<td class="fieldname">
eventMask</td>
<td class="fielddoc">
<p>Mask of enabled events. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a099f725f22a344e190121634f53328d8"></a>bool</td>
<td class="fieldname">
isBusy</td>
<td class="fielddoc">
<p>Whether transfer is busy. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a60922e422a33982a7db7888ab3072d6a"></a><a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__transfer__t">lpi2c_slave_transfer_t</a></td>
<td class="fieldname">
transfer</td>
<td class="fielddoc">
<p>LPI2C slave transfer copy. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="abff366b77633e9abbfc21db3fbd8caf9"></a>uint32_t</td>
<td class="fieldname">
transferredCount</td>
<td class="fielddoc">
<p>Count of bytes transferred. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a2e294dd14122c554baa0665072b4ca7a"></a>void *</td>
<td class="fieldname">
userData</td>
<td class="fielddoc">
<p>Callback parameter passed to callback. </p>
</td></tr>
<tr><td class="fieldtype">
<a class="anchor" id="a0db88bc215e9540584951267e595103f"></a>bool</td>
<td class="fieldname">
wasTransmit</td>
<td class="fielddoc">
<p>Whether the last transfer was a transmit. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gaddf93dfdcc63952d562a61e5631f31ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* lpi2c_slave_transfer_callback_t) (LPI2C_Type *base, <a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__transfer__t">lpi2c_slave_transfer_t</a> *transfer, void *userData)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Slave event callback function pointer type. </p>
<p>This callback is used only for the slave non-blocking transfer API. To install a callback, use the LPI2C_SlaveSetCallback() function after you have created a handle.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>Base address for the LPI2C instance on which the event occurred. </td></tr>
    <tr><td class="paramname">transfer</td><td>Pointer to transfer descriptor containing values passed to and/or from the callback. </td></tr>
    <tr><td class="paramname">userData</td><td>Arbitrary pointer-sized value passed from the application. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gabd50effc706692c03b42faa72c34269b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__lpi2c__slave__driver.html#gabd50effc706692c03b42faa72c34269b">_lpi2c_slave_flags</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>LPI2C slave peripheral flags. </p>
<p>The following status register flags can be cleared:</p><ul>
<li><a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba5c5dcad526309c44aa390c13ae53ca3e">kLPI2C_SlaveRepeatedStartDetectFlag</a></li>
<li><a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269baaaa1d719607915d0b1251727900018a7">kLPI2C_SlaveStopDetectFlag</a></li>
<li><a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba41375eeb82c399aff15daba1e8bbff03">kLPI2C_SlaveBitErrFlag</a></li>
<li><a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba6eb9dd96bad287dcb7e2f23f73d961a8">kLPI2C_SlaveFifoErrFlag</a></li>
</ul>
<p>All flags except <a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269baffa3195deae58fc6ea15d062b465ac5d">kLPI2C_SlaveBusyFlag</a> and <a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba2531ffa96faa3086714e8a069508867b">kLPI2C_SlaveBusBusyFlag</a> can be enabled as interrupts.</p>
<dl class="section note"><dt>Note</dt><dd>These enums are meant to be OR'd together to form a bit mask. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba80486f66e12276c945b8813269b90c0e"></a>kLPI2C_SlaveTxReadyFlag&#160;</td><td class="fielddoc">
<p>Transmit data flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba01265ce6645e4a978b823b1f130a419f"></a>kLPI2C_SlaveRxReadyFlag&#160;</td><td class="fielddoc">
<p>Receive data flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269baf34a60fee419e0b3d387b353a38b4772"></a>kLPI2C_SlaveAddressValidFlag&#160;</td><td class="fielddoc">
<p>Address valid flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba37386d33a28e37352a8e3151f027fdff"></a>kLPI2C_SlaveTransmitAckFlag&#160;</td><td class="fielddoc">
<p>Transmit ack flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba5c5dcad526309c44aa390c13ae53ca3e"></a>kLPI2C_SlaveRepeatedStartDetectFlag&#160;</td><td class="fielddoc">
<p>Repeated start detect flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269baaaa1d719607915d0b1251727900018a7"></a>kLPI2C_SlaveStopDetectFlag&#160;</td><td class="fielddoc">
<p>Stop detect flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba41375eeb82c399aff15daba1e8bbff03"></a>kLPI2C_SlaveBitErrFlag&#160;</td><td class="fielddoc">
<p>Bit error flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba6eb9dd96bad287dcb7e2f23f73d961a8"></a>kLPI2C_SlaveFifoErrFlag&#160;</td><td class="fielddoc">
<p>FIFO error flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba9fb3f57d810e280effee1dae37d062bb"></a>kLPI2C_SlaveAddressMatch0Flag&#160;</td><td class="fielddoc">
<p>Address match 0 flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba62cc9694d6891b21af074122eeedca85"></a>kLPI2C_SlaveAddressMatch1Flag&#160;</td><td class="fielddoc">
<p>Address match 1 flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba6a0fa821b530336ea8d1f19aadcbe1dc"></a>kLPI2C_SlaveGeneralCallFlag&#160;</td><td class="fielddoc">
<p>General call flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269baffa3195deae58fc6ea15d062b465ac5d"></a>kLPI2C_SlaveBusyFlag&#160;</td><td class="fielddoc">
<p>Master busy flag </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggabd50effc706692c03b42faa72c34269ba2531ffa96faa3086714e8a069508867b"></a>kLPI2C_SlaveBusBusyFlag&#160;</td><td class="fielddoc">
<p>Bus busy flag </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="gac3564395ccab19eb1ce6ab46b36bb5bb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__lpi2c__slave__driver.html#gac3564395ccab19eb1ce6ab46b36bb5bb">lpi2c_slave_address_match_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>LPI2C slave address match options. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="ggac3564395ccab19eb1ce6ab46b36bb5bbaaa16a731881882d10f48ebde416f54c5"></a>kLPI2C_MatchAddress0&#160;</td><td class="fielddoc">
<p>Match only address 0. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac3564395ccab19eb1ce6ab46b36bb5bba2941f8a06a17205294e7d0fa5f305675"></a>kLPI2C_MatchAddress0OrAddress1&#160;</td><td class="fielddoc">
<p>Match either address 0 or address 1. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="ggac3564395ccab19eb1ce6ab46b36bb5bba59e460fdd7075191f69e047ef35557eb"></a>kLPI2C_MatchAddress0ThroughAddress1&#160;</td><td class="fielddoc">
<p>Match a range of slave addresses from address 0 through address 1. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga0d99b4dba3841a4e02f7c431a59006c8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__lpi2c__slave__driver.html#ga0d99b4dba3841a4e02f7c431a59006c8">lpi2c_slave_transfer_event_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set of events sent to the callback for nonblocking slave transfers. </p>
<p>These event enums are used for two related purposes. First, a bit mask created by OR'ing together events is passed to <a class="el" href="group__lpi2c__slave__driver.html#ga1ba7c9d0c254de8fe8c04091c007edff" title="Start accepting slave transfers. ">LPI2C_SlaveTransferNonBlocking()</a> in order to specify which events to enable. Then, when the slave callback is invoked, it is passed the current event through its <em>transfer</em> parameter.</p>
<dl class="section note"><dt>Note</dt><dd>These enums are meant to be OR'd together to form a bit mask of events. </dd></dl>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a class="anchor" id="gga0d99b4dba3841a4e02f7c431a59006c8a10fb8d9bb6ba9cd44fde85466e6eabef"></a>kLPI2C_SlaveAddressMatchEvent&#160;</td><td class="fielddoc">
<p>Received the slave address after a start or repeated start. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga0d99b4dba3841a4e02f7c431a59006c8a976c8c9aa85026224a46cf5ec742eb49"></a>kLPI2C_SlaveTransmitEvent&#160;</td><td class="fielddoc">
<p>Callback is requested to provide data to transmit (slave-transmitter role). </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga0d99b4dba3841a4e02f7c431a59006c8ac737ba9e4e62880a6e2d8aac98ae8f18"></a>kLPI2C_SlaveReceiveEvent&#160;</td><td class="fielddoc">
<p>Callback is requested to provide a buffer in which to place received data (slave-receiver role). </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga0d99b4dba3841a4e02f7c431a59006c8a112af4cf8f8a374407d7c784f024b8e0"></a>kLPI2C_SlaveTransmitAckEvent&#160;</td><td class="fielddoc">
<p>Callback needs to either transmit an ack or nack. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga0d99b4dba3841a4e02f7c431a59006c8ae0995aac6808b3726b7577c2d283e4c4"></a>kLPI2C_SlaveRepeatedStartEvent&#160;</td><td class="fielddoc">
<p>A repeated start was detected. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga0d99b4dba3841a4e02f7c431a59006c8a06ef7422d9edf9b914864a2d689f042c"></a>kLPI2C_SlaveCompletionEvent&#160;</td><td class="fielddoc">
<p>A stop was detected, completing the transfer. </p>
</td></tr>
<tr><td class="fieldname"><a class="anchor" id="gga0d99b4dba3841a4e02f7c431a59006c8aeed0927f4e909cb161b44434b6f01aec"></a>kLPI2C_SlaveAllEvents&#160;</td><td class="fielddoc">
<p>Bit mask of all available events. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga515cda32a1d703a2c0ed7552ab7dfc4d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LPI2C_SlaveAbortTransfer </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">lpi2c_slave_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Abort slave non-blocking transfers. </p>
<dl class="section note"><dt>Note</dt><dd>This API could be called at any time to stop slave for handling the bus events. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>Pointer to #lpi2c_slave_handle_t structure which stores the transfer state. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">#kStatus_Success</td><td></td></tr>
    <tr><td class="paramname"><a class="el" href="group__lpi2c__driver.html#gga424746e0c18108c3c7233c77899a57c8a6603ec1135f58532c9d4accc3661bc27">kStatus_LPI2C_Idle</a></td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3b5306231d96d7fa38ef26d9ca6526b1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void LPI2C_SlaveClearStatusFlags </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>statusMask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clears the LPI2C status flag state. </p>
<p>The following status register flags can be cleared:</p><ul>
<li><a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba5c5dcad526309c44aa390c13ae53ca3e">kLPI2C_SlaveRepeatedStartDetectFlag</a></li>
<li><a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269baaaa1d719607915d0b1251727900018a7">kLPI2C_SlaveStopDetectFlag</a></li>
<li><a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba41375eeb82c399aff15daba1e8bbff03">kLPI2C_SlaveBitErrFlag</a></li>
<li><a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba6eb9dd96bad287dcb7e2f23f73d961a8">kLPI2C_SlaveFifoErrFlag</a></li>
</ul>
<p>Attempts to clear other flags will have no effect.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">statusMask</td><td>A bitmask of status flags that are to be cleared. The mask is composed of <a class="el" href="group__lpi2c__slave__driver.html#gabd50effc706692c03b42faa72c34269b" title="LPI2C slave peripheral flags. ">_lpi2c_slave_flags</a> enumerators OR'd together. You may pass the result of a previous call to <a class="el" href="group__lpi2c__slave__driver.html#ga18055724e510f601f35cc00940e9155c" title="Gets the LPI2C slave status flags. ">LPI2C_SlaveGetStatusFlags()</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__lpi2c__slave__driver.html#gabd50effc706692c03b42faa72c34269b" title="LPI2C slave peripheral flags. ">_lpi2c_slave_flags</a>. </dd></dl>

</div>
</div>
<a class="anchor" id="ga443cf70e4ba4011e333c0d187230f2fa"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LPI2C_SlaveCreateHandle </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">lpi2c_slave_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__lpi2c__slave__driver.html#gaddf93dfdcc63952d562a61e5631f31ad">lpi2c_slave_transfer_callback_t</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new handle for the LPI2C slave non-blocking APIs. </p>
<p>The creation of a handle is for use with the non-blocking APIs. Once a handle is created, there is not a corresponding destroy handle. If the user wants to terminate a transfer, the <a class="el" href="group__lpi2c__slave__driver.html#ga515cda32a1d703a2c0ed7552ab7dfc4d" title="Abort slave non-blocking transfers. ">LPI2C_SlaveAbortTransfer()</a> API shall be called.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">handle</td><td>Pointer to the LPI2C slave driver handle. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">callback</td><td>User provided pointer to the asynchronous callback function. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">userData</td><td>User provided pointer to the application callback data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa1a5cfe78acec0e1f8dd4af63a0f87f8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LPI2C_SlaveDeinit </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Deinitializes the LPI2C slave peripheral. </p>
<p>This function will disable the LPI2C slave peripheral and gates the clock. It also performs a software reset to restore the peripheral to reset conditions.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga9422103623a9866f350dd03aea984741"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void LPI2C_SlaveDisableInterrupts </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>interruptMask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Disable LPI2C slave interrupt requests. </p>
<p>All flags except <a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269baffa3195deae58fc6ea15d062b465ac5d">kLPI2C_SlaveBusyFlag</a> and <a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba2531ffa96faa3086714e8a069508867b">kLPI2C_SlaveBusBusyFlag</a> can be enabled as interrupts.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">interruptMask</td><td>Bit mask of interrupts to disable. See <a class="el" href="group__lpi2c__slave__driver.html#gabd50effc706692c03b42faa72c34269b" title="LPI2C slave peripheral flags. ">_lpi2c_slave_flags</a> for the set of constants that should be OR'd together to form the bit mask. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae83a936eb8303218278cd704d8238a08"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void LPI2C_SlaveEnable </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enable</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Enables or disables the LPI2C module as slave. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">enable</td><td>Pass true to enable or false to disable the specified LPI2C as slave. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa13d0c04083818cf91af19a6add0e08f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void LPI2C_SlaveEnableDMA </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enableAddressValid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enableRx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enableTx</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Enable or disable LPI2C slave peripheral DMA requests. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">enableAddressValid</td><td>Enable flag for the address valid DMA request. Pass true for enable, false for disable. The address valid DMA request is shared with the receive data DMA request. </td></tr>
    <tr><td class="paramname">enableRx</td><td>Enable flag for the receive data DMA request. Pass true for enable, false for disable. </td></tr>
    <tr><td class="paramname">enableTx</td><td>Enable flag for the transmit data DMA request. Pass true for enable, false for disable. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf5b7a33a341fd95ca77dcb6fe7f1bf3c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void LPI2C_SlaveEnableInterrupts </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>interruptMask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Enable LPI2C slave interrupt requests. </p>
<p>All flags except <a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269baffa3195deae58fc6ea15d062b465ac5d">kLPI2C_SlaveBusyFlag</a> and <a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba2531ffa96faa3086714e8a069508867b">kLPI2C_SlaveBusBusyFlag</a> can be enabled as interrupts.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">interruptMask</td><td>Bit mask of interrupts to enable. See <a class="el" href="group__lpi2c__slave__driver.html#gabd50effc706692c03b42faa72c34269b" title="LPI2C slave peripheral flags. ">_lpi2c_slave_flags</a> for the set of constants that should be OR'd together to form the bit mask. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga155ee1b5bc8c621b60b349b191c078fc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static bool LPI2C_SlaveGetBusIdleState </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return whether the bus is idle. </p>
<p>Requires the slave mode to be enabled.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">true</td><td>Bus is busy. </td></tr>
    <tr><td class="paramname">false</td><td>Bus is idle. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadf34085d4557ceb3081fff9fe0e3189a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LPI2C_SlaveGetDefaultConfig </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t">lpi2c_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>slaveConfig</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Provides a default configuration for the LPI2C slave peripheral. </p>
<p>This function will provide the following default configuration for the LPI2C slave peripheral: </p><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;slaveConfig-&gt;enableSlave               = true;</div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;slaveConfig-&gt;address0                  = 0U;</div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;slaveConfig-&gt;address1                  = 0U;</div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;slaveConfig-&gt;addressMatchMode          = kLPI2C_MatchAddress0;</div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;slaveConfig-&gt;filterDozeEnable          = true;</div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;slaveConfig-&gt;filterEnable              = true;</div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;slaveConfig-&gt;enableGeneralCall         = false;</div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;slaveConfig-&gt;sclStall.enableAck        = false;</div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;slaveConfig-&gt;sclStall.enableTx         = true;</div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;slaveConfig-&gt;sclStall.enableRx         = true;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;slaveConfig-&gt;sclStall.enableAddress    = true;</div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;slaveConfig-&gt;ignoreAck                 = false;</div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;slaveConfig-&gt;enableReceivedAddressRead = false;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;slaveConfig-&gt;sdaGlitchFilterWidth_ns   = 0; // TODO determine default width values</div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;slaveConfig-&gt;sclGlitchFilterWidth_ns   = 0;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;slaveConfig-&gt;dataValidDelay_ns         = 0;</div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;slaveConfig-&gt;clockHoldTime_ns          = 0;</div></div><!-- fragment --><p>After calling this function, you can override any settings in order to customize the configuration, prior to initializing the master driver with <a class="el" href="group__lpi2c__slave__driver.html#gae5cc8a03c784a99bb58b69852dfda5a5" title="Initializes the LPI2C slave peripheral. ">LPI2C_SlaveInit()</a>. Be sure to override at least the <em>address0</em> member of the configuration structure with the desired slave address.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">slaveConfig</td><td>User provided configuration structure that will be set to default values. Refer to <a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t" title="Structure with settings to initialize the LPI2C slave module. ">lpi2c_slave_config_t</a>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga3d1fb84d337b8eb5cc19cbeced06c2a1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t LPI2C_SlaveGetEnabledInterrupts </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the set of currently enabled LPI2C slave interrupt requests. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A bitmask composed of <a class="el" href="group__lpi2c__slave__driver.html#gabd50effc706692c03b42faa72c34269b" title="LPI2C slave peripheral flags. ">_lpi2c_slave_flags</a> enumerators OR'd together to indicate the set of enabled interrupts. </dd></dl>

</div>
</div>
<a class="anchor" id="ga8219a79b748dc59c982c7c3a8470c3a6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t LPI2C_SlaveGetReceivedAddress </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the slave address sent by the I2C master. </p>
<p>This function should only be called if the <a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269baf34a60fee419e0b3d387b353a38b4772">kLPI2C_SlaveAddressValidFlag</a> is asserted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The 8-bit address matched by the LPI2C slave. Bit 0 contains the R/w direction bit, and the 7-bit slave address is in the upper 7 bits. </dd></dl>

</div>
</div>
<a class="anchor" id="ga18055724e510f601f35cc00940e9155c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t LPI2C_SlaveGetStatusFlags </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the LPI2C slave status flags. </p>
<p>A bit mask with the state of all LPI2C slave status flags is returned. For each flag, the corresponding bit in the return value will be set if the flag is asserted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>State of the status flags:<ul>
<li>1: related status flag is set.</li>
<li>0: related status flag is not set. </li>
</ul>
</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="group__lpi2c__slave__driver.html#gabd50effc706692c03b42faa72c34269b" title="LPI2C slave peripheral flags. ">_lpi2c_slave_flags</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga6d19b28a83f2997caf3fcd6927487e98"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPI2C_SlaveGetTransferCount </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">lpi2c_slave_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>count</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get slave transfer status during a non-blocking transfer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">handle</td><td>Pointer to i2c_slave_handle_t structure. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">count</td><td>Pointer to a value to hold the number of bytes transferred. May be NULL if the count is not required. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">#kStatus_Success</td><td></td></tr>
    <tr><td class="paramname">#kStatus_NoTransferInProgress</td><td></td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2f7c089dea70918c0a08b2caaddd2fe7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LPI2C_SlaveHandleInterrupt </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">lpi2c_slave_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reusable routine to handle slave interrupts. </p>
<dl class="section note"><dt>Note</dt><dd>This function does not need to be called unless you are reimplementing the nonblocking API's interrupt handler routines to add special functionality. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>Pointer to #lpi2c_slave_handle_t structure which stores the transfer state. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gae5cc8a03c784a99bb58b69852dfda5a5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LPI2C_SlaveInit </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t">lpi2c_slave_config_t</a> *&#160;</td>
          <td class="paramname"><em>slaveConfig</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>sourceClock_Hz</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Initializes the LPI2C slave peripheral. </p>
<p>This function enables the peripheral clock and initializes the LPI2C slave peripheral as described by the user provided configuration.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">slaveConfig</td><td>User provided peripheral configuration. Use <a class="el" href="group__lpi2c__slave__driver.html#gadf34085d4557ceb3081fff9fe0e3189a" title="Provides a default configuration for the LPI2C slave peripheral. ">LPI2C_SlaveGetDefaultConfig()</a> to get a set of defaults that you can override. </td></tr>
    <tr><td class="paramname">sourceClock_Hz</td><td>Frequency in Hertz of the LPI2C functional clock. Used to calculate the filter widths, data valid delay, and clock hold time. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga36dd1b211a7fe488bfc062a1d8e74fc8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPI2C_SlaveReceive </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>rxBuff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>rxSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>actualRxSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs a polling receive transfer on the I2C bus. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">rxBuff</td><td>The pointer to the data to be transferred. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">rxSize</td><td>The length in bytes of the data to be transferred. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">actualRxSize</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Error or success status returned by API. </dd></dl>

</div>
</div>
<a class="anchor" id="gaf58f9ebf437d62936c45c201a68fb5d7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void LPI2C_SlaveReset </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Perform software reset of the LPI2C slave peripheral. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga6762c41a46ca9cdc9c749e83f1a9f17d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPI2C_SlaveSend </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>txBuff</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>txSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&#160;</td>
          <td class="paramname"><em>actualTxSize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Performs a polling send transfer on the I2C bus. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">txBuff</td><td>The pointer to the data to be transferred. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">txSize</td><td>The length in bytes of the data to be transferred. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">actualTxSize</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Error or success status returned by API. </dd></dl>

</div>
</div>
<a class="anchor" id="ga1ba7c9d0c254de8fe8c04091c007edff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__ksdk__common.html#gaaabdaf7ee58ca7269bd4bf24efcde092">status_t</a> LPI2C_SlaveTransferNonBlocking </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">lpi2c_slave_handle_t *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>eventMask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Start accepting slave transfers. </p>
<p>Call this API after calling <a class="el" href="group__i2c.html#gae6e155a5aadb43d527418e2965e39123" title="Initialize the I2C peripheral, call this API to ungate the i2c clock and initializes the I2C with sla...">I2C_SlaveInit()</a> and <a class="el" href="group__lpi2c__slave__driver.html#ga443cf70e4ba4011e333c0d187230f2fa" title="Create a new handle for the LPI2C slave non-blocking APIs. ">LPI2C_SlaveCreateHandle()</a> to start processing transactions driven by an I2C master. The slave will monitor the I2C bus and pass events to the callback that was passed into the call to <a class="el" href="group__lpi2c__slave__driver.html#ga443cf70e4ba4011e333c0d187230f2fa" title="Create a new handle for the LPI2C slave non-blocking APIs. ">LPI2C_SlaveCreateHandle()</a>. The callback is always invoked from the interrupt context.</p>
<p>The set of events received by the callback is customizable. To do so, set the <em>eventMask</em> parameter to the OR'd combination of <a class="el" href="group__lpi2c__slave__driver.html#ga0d99b4dba3841a4e02f7c431a59006c8" title="Set of events sent to the callback for nonblocking slave transfers. ">lpi2c_slave_transfer_event_t</a> enumerators for the events you wish to receive. The <a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8a976c8c9aa85026224a46cf5ec742eb49">kLPI2C_SlaveTransmitEvent</a> and <a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8ac737ba9e4e62880a6e2d8aac98ae8f18">kLPI2C_SlaveReceiveEvent</a> events are always enabled and do not need to be included in the mask. Alternatively, you can pass 0 to get a default set of only the transmit and receive events that are always enabled. In addition, the <a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8aeed0927f4e909cb161b44434b6f01aec">kLPI2C_SlaveAllEvents</a> constant is provided as a convenient way to enable all events.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">handle</td><td>Pointer to #lpi2c_slave_handle_t structure which stores the transfer state. </td></tr>
    <tr><td class="paramname">eventMask</td><td>Bit mask formed by OR'ing together <a class="el" href="group__lpi2c__slave__driver.html#ga0d99b4dba3841a4e02f7c431a59006c8" title="Set of events sent to the callback for nonblocking slave transfers. ">lpi2c_slave_transfer_event_t</a> enumerators to specify which events to send to the callback. Other accepted values are 0 to get a default set of only the transmit and receive events, and <a class="el" href="group__lpi2c__slave__driver.html#gga0d99b4dba3841a4e02f7c431a59006c8aeed0927f4e909cb161b44434b6f01aec">kLPI2C_SlaveAllEvents</a> to enable all events.</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">#kStatus_Success</td><td>Slave transfers were successfully started. </td></tr>
    <tr><td class="paramname"><a class="el" href="group__lpi2c__driver.html#gga424746e0c18108c3c7233c77899a57c8af52a270e301641b8855edf3fcc843814">kStatus_LPI2C_Busy</a></td><td>Slave transfers have already been started on this handle. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga417e07e45369a955f7fecaa26e13b335"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void LPI2C_SlaveTransmitAck </td>
          <td>(</td>
          <td class="paramtype">LPI2C_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>ackOrNack</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Transmit either an Ack or Nak on the I2C bus in response to a byte from the master. </p>
<p>Use this function to send an Ack or Nak when the <a class="el" href="group__lpi2c__slave__driver.html#ggabd50effc706692c03b42faa72c34269ba37386d33a28e37352a8e3151f027fdff">kLPI2C_SlaveTransmitAckFlag</a> is asserted. This will only happen if you enable the sclStall.enableAck field of the <a class="el" href="group__lpi2c__slave__driver.html#structlpi2c__slave__config__t" title="Structure with settings to initialize the LPI2C slave module. ">lpi2c_slave_config_t</a> configuration structure used to initialize the slave peripheral.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>The LPI2C peripheral base address. </td></tr>
    <tr><td class="paramname">ackOrNack</td><td>Pass true for an Ack or false for a Nak. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Mon Mar 7 2016 16:48:23 for Kinetis Bootloader by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
